#!/bin/sh

#在/oem/RkLunch.sh中调用start_edge_midware.sh
#/oem/RkLunch.sh <-- source /data/changhong/edge_midware/start_edge_midware.sh
export LD_LIBRARY_PATH=/data/changhong/edge_midware/AIUI/libs
FILE=/tmp/factory_mode

#获取运行的进程数目
#如果进程启动了多个，则删除所有进程，然后将结果置为0，这样进程会被重启；
function get_processRunning_num {
	check_results=`ps -ef|grep $1|grep -v grep|wc -l` 
	if [ $check_results -gt 1 ]
	then
		killall -9 $1
		check_results=0
	fi
}


#加载upgrade
#复制并给执行权限
function load_upgrade {
	cp -f /data/changhong/edge_midware/edge_midware_upgrade  /oem/
	chmod a+x /oem/edge_midware_upgrade
}


#如果进程没有运行则运行该进程
#对于ble_light和zigbee_light_site来说，首先二者是互斥的，其次只有二者都不运行，才会启动。
check_run() {
	get_processRunning_num $1
	if [ $check_results -eq 0 ] 
	then 
		if [ "$1" == "zigbee_light_site" ]
		then
			get_processRunning_num ble_site
			if [ $check_results -eq 0 ] 
			then
				echo "Start $1..."
				/data/changhong/edge_midware/$1 $2 $3 >/dev/null 2>&1 &
				sleep 1
			fi
		else
			echo "Start $1..."
			/data/changhong/edge_midware/$1 $2 $3 >/dev/null 2>&1 &
			sleep 1
		fi
	fi
}


#检查升级程序
check_upgrade() {
	get_processRunning_num $1
	if [ $check_results -eq 0 ] 
	then 
		/oem/$1 $2 $3 >/dev/null 2>&1 &
		sleep 1
	fi
}


#检查eq_drc_process
check_drc() {
	get_processRunning_num $1
	if [ $check_results -eq 0 ] 
	then 
		/usr/bin/$1 $2 $3 >/dev/null 2>&1 &
		sleep 1
	fi
}


#检查日期
check_date() {
    check_results=`date | awk '{print $NF}'`
	if [ $check_results -eq 1970 ] 
	then 
		/usr/sbin/$1 $2 $3 >/dev/null 2>&1 &
		sleep 1
	fi
}

load_upgrade

while [ 1 ]
do
	# 站点命令
	site_cmd="query_site"
	# 站点参数
	site_para=""
	# 调用函数
	check_run $site_cmd $site_para

	# 站点命令
	site_cmd="config_site"
	# 站点参数
	site_para="/data/changhong/edge_midware/paramData --RK3308"
	# 调用函数
	check_run $site_cmd $site_para

	# 站点命令
	site_cmd="bt_device_site"
	# 站点参数
	site_para=""
	# 调用函数
	check_run $site_cmd $site_para

	# 站点命令
	site_cmd="player_site"
	# 站点参数
	site_para=""
	# 调用函数
	check_run $site_cmd $site_para

	# 站点命令
	site_cmd="hongmei_dev_site"
	# 站点参数
	site_para=""
	# 调用函数
	check_run $site_cmd $site_para

	# 站点命令, 由zigbee_light_site来决定是否启动蓝牙站点
	site_cmd="zigbee_light_site"
	# 站点参数
	site_para="/data/changhong/edge_midware/"
	# 调用函数
	check_run $site_cmd $site_para
	
	# 检查drc命令
	site_cmd="eq_drc_process"
	# 站点参数
	site_para=""
	# 调用函数
	check_drc $site_cmd $site_para

	if [ -f "$FILE" ]
	then
		echo "input factory_mode..."
	else
		# 站点命令
		site_cmd="voice_online_site"
		# 站点参数
		site_para=""
		# 调用函数
		check_run $site_cmd $site_para

		# 站点命令
		site_cmd="sensor_service_site"
		# 站点参数
		site_para=""
		# 调用函数
		check_run $site_cmd $site_para	

		# 站点命令
		site_cmd="master_coordinate_site"
		# 站点参数
		site_para=""
		# 调用函数
		check_run $site_cmd $site_para
	fi
	
	# 站点命令
	site_cmd="light_move_site"
	# 站点参数
	site_para=""
	# 调用函数
	check_run $site_cmd $site_para
	
	# 站点命令
	site_cmd="edge_midware_upgrade"
	# 站点参数
	site_para=""
	# 调用函数
	check_upgrade $site_cmd $site_para
	
	# 站点命令
	site_cmd="ntpd"
	# 站点参数
	site_para="-gq"
	# 调用函数
	check_date $site_cmd $site_para
		
	sleep 5
done

